Element X Push-Notifications: Fehler 403 „forbidden“ mit ntfy gelöst
Ich hatte das Problem, dass ich auf meinem Telefon von Element X keine Push-Benachrichtigungen mehr empfangen habe. Einige Tage lang war einfach Funkstille – keine neuen Hinweise von Element X. Um der Sache auf den Grund zu gehen, habe ich mich in den Einstellungen von Element X durchgeklickt: Einstellungen > Benachrichtigungen > Fehlerbehebung für Benachrichtigungen. Dort habe ich die Tests gestartet und bin schließlich auf die eigentliche Ursache gestoßen.

Dabei wurde mir klar, dass Element X auf meinem Gerät die UnifiedPush-Schnittstelle verwendet. Weil ich die ntfy-App ohnehin installiert habe, wurde automatisch meine eigene ntfy-Instanz als Push-Distributor genutzt. Das ist praktisch, weil ich damit keine Google- oder Apple-Dienste brauche und die volle Kontrolle über meine Pushs behalte. Genau an dieser Stelle lag aber auch der Fehler: Meine ntfy-Instanz ließ anonyme Nutzer nicht in die speziellen Push-Topics schreiben, die Matrix für Benachrichtigungen anlegt – und so konnten keine Nachrichten mehr durchkommen.
Im Testlauf tauchte genau dieser Fehler auf:
java.lang.RuntimeException: HTTP 403: {"code":40301,"http":403,"error":"forbidden","link":"https://ntfy.sh/docs/publish/#authentication"}
Das war der entscheidende Hinweis: ntfy verweigerte das Schreiben ins Topic, weil keine Berechtigung vorhanden war.
🔑 Die Lösung
Die Lösung war am Ende erstaunlich simpel. Mit folgendem Befehl habe ich die Berechtigung gesetzt:
docker exec -it ntfy ntfy access '*' 'up*' write-only
Das bedeutet: Anonyme Nutzer (und damit auch mein Matrix-Server) dürfen in alle Topics schreiben, die mit „up“ beginnen. Wichtig ist: Es handelt sich nur um write-only-Zugriff. Das heißt, niemand kann diese Topics einfach lesen oder mitverfolgen – sie dienen wirklich nur dem Zustellen von Push-Nachrichten. Für den sogenannten Push Loop Back-Test ist das absolut notwendig, weil Element X damit prüft, ob Nachrichten vom Homeserver über das Gateway wieder auf dem Gerät ankommen.

Eigentlich wollte ich das Ganze über die Konfigurationsdatei /etc/ntfy/server.yml regeln. Dort kann man solche ACLs (Access-Control-Listen) ebenfalls festlegen. In meinem Fall hat das aber nicht funktioniert – warum, weiß ich aktuell nicht.
auth-access: - "*:up*:write-only"
Der Weg über „docker exec“ hat sofort gegriffen. Ob es bei neuen Topics einen Unterschied macht, kann ich nicht sagen, da meine Topics bereits bestanden haben. Fakt ist: Mit dem Befehl laufen meine Pushs wieder zuverlässig.

✅ Fazit
Wenn du Element X mit deiner eigenen ntfy-Instanz nutzt und plötzlich keine Pushs mehr ankommen, lohnt sich ein Blick in die Zugriffsrechte. Ohne die richtige ACL blockt ntfy die Zustellung. Mit write-only auf „up*“ gibst du genau die notwendige Freiheit. Und schon kommen die Benachrichtigungen wieder pünktlich auf dem Handy an!
Wichtig zu wissen: Die öffentliche Instanz ntfy.sh hat diese Einschränkungen vermutlich nicht. Auf diese Problematik bin ich nur gestoßen, weil ich meine ntfy-App auf dem Handy bewusst so konfiguriert habe, dass sie meinen eigenen Server verwendet.
👥 Techniverse Community
Lust auf Austausch rund um Matrix, Selfhosting und andere smarte IT-Lösungen?
In der Techniverse Community triffst du Gleichgesinnte, kannst Fragen stellen oder einfach nerdigen Talk genießen. 🚀
👉 Jetzt der Gruppe auf Matrix beitreten
~ Direkte Raumadresse: #community:techniverse.net
👉 Für lockere Gespräche abseits der Kernthemen komm in den Talkraum
~ Direkte Raumadresse: #talk:techniverse.net
Wir freuen uns, wenn du dabei bist!


